﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yto.Entities;

namespace com.ytocargo.Core.AirCraftInfos
{
    [Table("T4006")]
    public class AirCraftInfo : Entity<string>
    {
        [Column("AC_REG")]
        [StringLength(10)]
        public override string Id { get => base.Id; set => base.Id = value; }

        [Column("AC_TYPE_SHORT")]
        [StringLength(10)]
        public string AcTypeShort { get; set; }

        [Column("AC_TYPE_LONG")]
        [StringLength(15)]
        public string AcTypeLong { get; set; }

        //发动机
        [Column("FLY_DEVICE")]
        [StringLength(20)]
        public string FlyDevice { get; set; }

        //选择呼叫
        [Column("CHOICE_CALL")]
        [StringLength(4)]
        public string ChoiceCall { get; set; }

        //最大业载(KG)
        [Column("MAX_LOAD")]
        public decimal? MaxLoad { get; set; }

        //最大油量(KG)
        [Column("MAX_OIL")]
        [StringLength(8)]
        public string MaxOil { get; set; }

        //最小油量(KG)
        [Column("MIN_OIL")]
        [StringLength(8)]
        public string MinOil { get; set; }

        //可用业载(KG)
        [Column("AVAILABLE_LOAD")]
        public decimal? AvailableLoad { get; set; }

        //基本重量(KG)
        [Column("BASE_WEIGHT")]
        public int? BaseWeight { get; set; }

        //结构重量(KG)
        [Column("CONSTRUCTION_WEIGHT")]
        public int? ConstructionWeight { get; set; }

        //最大滑行重量(KG)
        [Column("MAX_SLIDE_WEIGHT")]
        public int? MaxSlideWeight { get; set; }

        //最大起飞重量(KG)
        [Column("MAX_DEPART_WEIGHT")]
        public int? MaxDepartWeight { get; set; }

        //最大着落重量(KG)
        [Column("MAX_LANDFALL_WEIGHT")]
        public int? MaxLandfallWeight { get; set; }

        //最大无油重量(KG)
        [Column("MAX_NO_OIL_WEIGHT")]
        public int? MaxNoOilWeight { get; set; }

        //空重指数
        [Column("EW_INDEX")]
        public decimal? EwIndex { get; set; }

        [Column("MAC")]
        public decimal? Mac { get; set; }

        [Column("H_ARM")]
        public decimal? HArm { get; set; }

        //重心
        [Column("BALANCE_INDEX")]
        public decimal? BalanceIndex { get; set; }

        [Column("OEW")]
        public int? Oew { get; set; }

        //座位数
        [Column("SEAT_NUM")]
        public decimal? SeatNum { get; set; }

        //头等舱座位数
        [Column("F_SEAT_NUM")]
        public decimal? FSeatNum { get; set; }

        //公务舱座位数
        [Column("B_SEAT_NUM")]
        public decimal? BSeatNum { get; set; }

        //经济舱座位数
        [Column("E_SEAT_NUM")]
        public decimal? ESeatNum { get; set; }

        //在册开始日期
        [Column("START_DATE")]
        public DateTime? StartDate { get; set; }

        //在册结束日期
        [Column("END_DATE")]
        public DateTime? EndDate { get; set; }

        [Column("QLCX")]
        public int? Qlcx { get; set; }

        [Column("BARYCENTER")]
        public decimal? Barycenter { get; set; }

        //布局
        [Column("LAYOUT")]
        public string Layout { get; set; }

        //客/货
        [StringLength(1)]
        [Column("P_OR_C")]
        public string POrC { get; set; }

        //分公司
        [StringLength(10)]
        [Column("FILIALE")]
        public string Filiale { get; set; }

        //基地
        [StringLength(4)]
        [Column("BASE")]
        public string Base { get; set; }

        //国籍
        [StringLength(20)]
        [Column("NATIVE")]
        public string Native { get; set; }

        //备注
        [StringLength(2000)]
        [Column("REMARK")]
        public string Remark { get; set; }

        //有效时间
        [Column("VALIDATE_TIME")]
        public DateTime? ValidateTime { get; set; }

        //飞行小时数
        [Column("FLY_HOURS")]
        public int? FlyHours { get; set; }

        //最后飞行时刻
        [Column("FLY_HOURS_DATE")]
        public DateTime? FlyHoursDate { get; set; }

        [StringLength(2)]
        [Column("IS_LOAN")]
        public string IsLoan { get; set; }

        //系列
        [Column("SERIAL")]
        public byte? Serial { get; set; }

        //承运人
        [Column("CARRIER")]
        [StringLength(2)]
        public string Carrier { get; set; }

        //起落数
        [Column("FLY_QLS")]
        public int? FlyQls { get; set; }

        //最大业载(rsp专用)
        [Column("MAX_LOAD_RSP")]
        public int? MaxLoadRsp { get; set; }

        //可供业载(rsp专用)
        [Column("USE_LOAD_RSP")]
        public int? UseLoadRsp { get; set; }

        //最大座位(rsp专用)
        [Column("MAX_SEAT_RSP")]
        public short? MaxSeatRsp { get; set; }

        //可供座位(rsp专用)
        [Column("USE_SEAT_RSP")]
        public short? UseSeatRsp { get; set; }

        [Column("OXYGEN_CABIN_FLAG")]
        public string OxygenCabinFlag { get; set; }

        //实际最大载荷
        [Column("FACT_MAX_LOAD")]
        public decimal? FactMaxLoad { get; set; }

        [Column("SYS_KEY")]
        public string SysKey { get; set; }

        //修改时间
        [Column("MODIFIED_DATE")]
        public DateTime? ModifiedDate { get; set; }

        //货仓容积
        [Column("STORE_VOLUME")]
        public int? StoreVolume { get; set; }

        //最后修改时间
        [Column("LAST_MODI_TIME")]
        public DateTime? LastModiTime { get; set; }

        //最大业载(LB)
        [Column("MAX_LOAD_LB")]
        public decimal? MaxLoadLb { get; set; }

        //最大油量(LB)
        [Column("MAX_OIL_LB")]
        [StringLength(8)]
        public string MaxOilLb { get; set; }

        //最小油量(LB)
        [Column("MIN_OIL_LB")]
        [StringLength(8)]
        public string MinOilLb { get; set; }

        //可用业载(LB)
        [Column("AVAILABLE_LOAD_LB")]
        public decimal? AvailableLoadLb { get; set; }

        //基本重量(LB)
        [Column("BASE_WEIGHT_LB")]
        public int? BaseWeightLb { get; set; }

        //结构重量(LB)
        [Column("CONSTRUCTION_WEIGHT_LB")]
        public int? ConstructionWeightLb { get; set; }

        //最大滑行重量(LB)
        [Column("MAX_SLIDE_WEIGHT_LB")]
        public int? MaxSlideWeightLb { get; set; }

        //最大着落重量(LB)
        [Column("MAX_LANDFALL_WEIGHT_LB")]
        public int? MaxLandfallWeightLb { get; set; }

        //最大无油重量(LB)
        [Column("MAX_NO_OIL_WEIGHT_LB")]
        public int? MaxNoOilWeightLb { get; set; }

        //最大起飞重量(LB)
        [Column("MAX_DEPART_WEIGHT_LB")]
        public int? MaxDepartWeightLb { get; set; }

        //货舱构型
        [Column("STORE_STRUCTURE")]
        [StringLength(1500)]
        public string StoreStructure { get; set; }

        //单位（LB英镑，KG公斤）
        [Column("UNITS")]
        [StringLength(5)]
        public string Units { get; set; }

        //相应FPL报文第10项A部分代码
        [Column("FPL_10A")]
        [StringLength(30)]
        public string Fpl10A { get; set; }

        //相应FPL报文第10项B部分代码
        [Column("FPL_10B")]
        [StringLength(30)]
        public string Fpl10B { get; set; }

        //相应FPL报文第18项PBN内容
        [Column("FPL_18PBN")]
        [StringLength(100)]
        public string Fpl18PBN { get; set; }

        //相应FPL报文第18项NAV、COM、DAT、SUR部分内容
        [Column("FPL_18NAV")]
        [StringLength(100)]
        public string Fpl18NAV { get; set; }

        //相应FPL报文第18项RMK部分内容
        [Column("FPL_18RMK")]
        [StringLength(100)]
        public string Fpl18RMK { get; set; }

        //飞机油量单位（LB英镑，KG公斤）
        [Column("AC_UNITS")]
        [StringLength(5)]
        public string AcUnits { get; set; }

        //飞机序列号
        [Column("MSN")]
        [StringLength(5)]
        public string Msn { get; set; }
    }
}
